package id.mankel.commons.util;

import org.apache.poi.ss.formula.functions.T;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;

public class MkCollections {




    // =============================================
    // List

    /**
     * list.stream().reduce(new ArrayList(), MkCollections::addAll);
     * @param l1
     * @param l2
     * @return
     */
    public static List<T> addAll(List<T> l1, List<T> l2) {
        l1.addAll(l2);
        return l1;
    }



    // =============================================
    // Map

    public static <I, T> Map<I, T> listToMap(Function<T, I> function, List<T> list) {
        if (null == function || null == list) return null;

        Map<I, T> map = new HashMap<>(list.size());
        for (T t : list) {
            map.put(function.apply(t), t);
        }
        return map;
    }



    // =============================================
    // Array

    public static boolean contains(Object[] array, Object o) {
        for (Object oo : array) {
            if (Objects.equals(oo, o)) return true;
        }
        return false;
    }

}
